import axios from 'axios'
import store from '@/store/index';
import { ElMessage } from 'element-plus';   //发起错误提示



const baseURL = "http://localhost:8081/mock" ; //定义基础路径
/**
 * 跨域代理方案：
 * 1.后台使用cors
 * 2.前台使用proxy：开发阶段
 * 推荐使用后台方案
 */

enum MESS {     //定义枚举的返回信息
    '操作成功' = 0,
    '密码错误' = -100,
    '未知错误' = -1
}
//-----创建 http 实例 
const $http = axios.create({
    baseURL:baseURL,        //基础路径，需要与服务费一致
    timeout:2000,           //超时时间
    headers:{
        'Content-Type':'application/json;charset=utf-8'
    }
});

//------请求拦截----------
$http.interceptors.request.use(config => {
    config.headers = config.headers || {} ;
    config.headers.token = localStorage.getItem('token') || '';
    

    return config ; //请求拦截后，必须返还config
},
err => {
    ElMessage.error(err);
    return Promise.reject(err);
}
);


//------响应拦截-----------
$http.interceptors.response.use(res => {
        console.log(res.data);
        const code:number = res.data.code ;
        //-----------错误提醒-------------
        if(code != 0){
            ElMessage.error(MESS[code]);
            return Promise.reject(res.data);
        }

        return res.data; 
    },err => {
        console.log(err)
    }
)

//------导出请求----
export default $http;